# -*- coding: utf-8 -*-
# Author: xiantingDeng
# File: 08_del__方法.py
# Time: 19:32


class Dog:
    def __del__(self): # 当你所有的对象都被删除后则调用
        print("--"*4)

dog1 = Dog()
dog2 = dog1




del dog1#不会调用 __del__方法,因为这个对象 还有其他的变量指向它,即 引用计算不是0
del dog2#此时会调用__del__方法,因为没有变量指向它了
print("====================")

#如果在程序结束时,有些对象还存在,那么python解释器会自动调用它们的__del__方法来完成清理工作
import sys
print(sys.getrefcount(Dog)) # 指向对象有多少次 # 比实际多1  测量一个对象的引用计算方式